package com.peas.platform.module.icims.contract.initial.controller.vo;

import java.util.*;
import java.math.*;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.common.core.vo.BaseVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel("初始合同")
public class ContractInitialVo extends BaseVo {

    @Comment(value = "合同种类", dictType = "ContractKind")
    @ApiModelProperty(value = "合同种类", notes = "字典取值:ContractKind")
    @Size(max = 20, message = "合同种类不能超过20个字符")
    private String kind;

    @Comment(value = "合同编码")
    @ApiModelProperty(value = "合同编码")
    @Size(max = 100, message = "合同编码不能超过100个字符")
    private String code;

    @Comment(value = "合同名称")
    @ApiModelProperty(value = "合同名称")
    @NotBlank(message = "合同名称不能为空")
    @Size(max = 200, message = "合同名称不能超过200个字符")
    private String name;

    // 【合同类型表】
    @Comment(value = "合同类型")
    @ApiModelProperty(value = "合同类型")
    private Long type;

    // 【合同签订人表】
    @Comment(value = "合同签订人ID")
    @ApiModelProperty(value = "合同签订人ID")
    private Long contractSignerId;

    // 【组织架构表】
    @Comment(value = "合同签订部门ID")
    @ApiModelProperty(value = "合同签订部门ID")
    private Long contractSignerDepartmentId;

    // 【组织架构表】
    @Comment(value = "负责部门ID")
    @ApiModelProperty(value = "负责部门ID")
    private Long departmentId;

    // 【用户表】
    @Comment(value = "负责人用户ID")
    @ApiModelProperty(value = "负责人用户ID")
    private Long userId;

    @Comment(value = "合同金额")
    @ApiModelProperty(value = "合同金额")
    private BigDecimal amount;

    @Comment(value = "合同起始时间")
    @ApiModelProperty(value = "合同起始时间")
    private Date contractLaunch;

    @Comment(value = "合同终止时间")
    @ApiModelProperty(value = "合同终止时间")
    private Date contractComplete;

    @Comment(value = "是否需要验收", enumType = "CommonYesNo")
    @ApiModelProperty(value = "是否需要验收", notes = "枚举取值:CommonYesNo")
    @Size(max = 20, message = "是否需要验收不能超过20个字符")
    private String needInspection;

    // 【合同模版表】
    @Comment(value = "合同模版ID")
    @ApiModelProperty(value = "合同模版ID")
    private Long contractTemplateId;

    @Comment(value = "合同内容")
    @ApiModelProperty(value = "合同内容")
    private String content;

    @Comment(value = "合同状态", enumType = "ContractInitialState")
    @ApiModelProperty(value = "合同状态", notes = "枚举取值:ContractInitialState")
    @Size(max = 20, message = "合同状态不能超过20个字符")
    private String state;

    @Comment(value = "是否中止", enumType = "CommonYesNo")
    @ApiModelProperty(value = "是否中止", notes = "枚举取值:CommonYesNo")
    @Size(max = 20, message = "是否中止不能超过20个字符")
    private String isInterrupt;

}
